`bincode` is a crate for encoding and decoding using a tiny binary
serialization strategy.
There are simple functions for encoding to `Vec` and decoding from
`&[u8]`, but the meat of the library is the `encode_into` and `decode_from`
functions which respectively allow encoding into a `std::io::Writer`
and decoding from a `std::io::Buffer`.
## Modules
Until "default type parameters" lands, we have an extra module called `endian_choice`
that duplicates all of the core bincode functionality but with the option to choose
which endianness the integers are encoded using.
The default endianness is little.
### Using Basic Functions
```rust
extern crate bincode;
use bincode::{serialize, deserialize, Bounded};
fn main() {
// The object that we will serialize.
let target = Some("hello world".to_string());
// The maximum size of the encoded message.
let limit = Bounded(20);
let encoded: Vec = serialize(&target, limit).unwrap();
let decoded: Option = deserialize(&encoded[..]).unwrap();
assert_eq!(target, decoded);
}
```